MyMineModel = {}
local self = MyMineModel
Model:Register(self)

function self:Init()
    self.cells = {}
    self.max_x = 9 -- 格子最大x
    self.max_y = 14 -- 格子最大y
    self.max_bomb_count =10 -- 最大炸弹数
    self.bomb_count = 0 -- 当前炸弹数
    self.game_status=MyMineConstant.GameStatus.Node--游戏状态

    
end

function self:UnInit()

end

-- 创建格子实体对象
function self:MakeCell(idx, x, y)
    local cell = {
        idx = idx,
        x = x,
        y = y,
        bomb_num = 0, -- 附件炸弹数
        is_bomb = false, -- 炸弹
        is_dig = false -- 挖
    }
    return cell
end

-- 添加缓存实体对象
function self:AddCell(cell)
    local arr_y = self.cells[cell.y]
    if arr_y == nil then
        arr_y = {}
        self.cells[cell.y] = arr_y
    end
    arr_y[cell.x] = cell
end

-- 获取缓存实体对象
function self:GetCell(x, y)
    local arr_y = self.cells[y]
    if arr_y then
        return arr_y[x]
    end
    return nil
end

-- 添加炸弹
function self:AddBomb()
    local x = math.random(self.max_x)
    local y = math.random(self.max_y)
    local cell = self:GetCell(x, y)
    if cell then
        if cell.is_bomb == false then
            cell.is_bomb = true
            Debug.Log("sss:".. self.bomb_count)
            self.bomb_count = self.bomb_count + 1
        end
    end
end

-- 当前炸弹已经满
function self:IsBombFull()
    return self.bomb_count >= self.max_bomb_count
end
-- 当前格子是不是炸弹
function self:IsBomb(x, y)
    local cell = self:GetCell(x, y)
    if cell then
        return cell.is_bomb
    end
    return false
end

-- 格子迭代器
function self:ForeachCell(func)
    for y, arr_y in pairs(self.cells) do
        for x, cell in pairs(arr_y) do
            func(cell)
        end
    end
end
